home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / docs / apps / database / ingres04.lzh / source / monitor / writeout.c < prev    next >
Encoding:
C/C++ Source or Header  |  1985-01-23  |  882 b   |  55 lines

  1. # include    "monitor.h"
  2. # include    <ingres.h>
  3. # include    <aux.h>
  4. # include    <sccs.h>
  5.  
  6. SCCSID(@(#)writeout.c    8.2    1/18/85)
  7.  
  8.  
  9.  
  10. /*
  11. **  WRITE OUT QUERY BUFFER TO UNIX FILE
  12. **
  13. **    The logical buffer is written to a UNIX file, the name of which
  14. **    must follow the \w command.
  15. **
  16. **    Uses trace flag 18
  17. */
  18.  
  19. writeout()
  20. {
  21.     register int    i;
  22.     register char    *file;
  23.     register int    source;
  24.     int        dest;
  25.     char        buf[512];
  26.     extern char    *getfilenm();
  27.  
  28.     file = getfilenm();
  29.     if (file[0] == 0 || file[0] == '-')
  30.     {
  31.         printf("Bad file name \"%s\"\n", file);
  32.         return;
  33.     }
  34.  
  35.     if ((dest = creat(file, 0644)) < 0)
  36.     {
  37.         printf("Cannot create \"%s\"\n", file);
  38.         return;
  39.     }
  40.  
  41.     if (!Nautoclear)
  42.         Autoclear = 1;
  43.  
  44.     if ((source = open(Qbname, O_RDONLY)) < 0)
  45.         syserr("writeout: open(%s)\n", Qbname);
  46.  
  47.     fflush(Qryiop);
  48.  
  49.     while ((i = read(source, buf, sizeof buf)) > 0)
  50.         write(dest, buf, i);
  51.  
  52.     close(source);
  53.     close(dest);
  54. }
  55.